using System.Collections.ObjectModel;
using System.Web.UI;
using Shinkansen.Core;

namespace Shinkansen.Web.UI.WebControls
{
    public interface IStaticResourceManager
    {
        /// <summary>
        /// Gets or sets the HTTP compress with.
        /// </summary>
        /// <value>The HTTP compress with.</value>
        HttpCompressionMode HttpCompressWith { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to crunch (minify, etc) these resources.
        /// </summary>
        /// <value><c>true</c> if crunch; otherwise, <c>false</c>.</value>
        bool Crunch { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to combine these resources.
        /// </summary>
        /// <value><c>true</c> if combine; otherwise, <c>false</c>.</value>
        bool Combine { get; set; }

        /// <summary>
        /// Gets or sets the script placement.
        /// </summary>
        /// <value>The script placement.</value>
        ScriptPlacement ScriptPlacement { get; set; }

        /// <summary>
        /// Gets the java script.
        /// </summary>
        /// <value>The java script.</value>
        [PersistenceMode (PersistenceMode.InnerProperty)]
        Collection<JavaScriptInclude> JavaScript { get; }

        /// <summary>
        /// Gets the CSS script.
        /// </summary>
        /// <value>The CSS script.</value>
        [PersistenceMode (PersistenceMode.InnerProperty)]
        Collection<CssInclude> Css { get; }
    }
}